list p=12f675 #include errorlevel -302 __CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT ;\\\\\\\\\\\\\\\\\\\\\ cblock 0x20 TIME1 endc ;\\\\\\\\\\\\\\\\\\\\\ ORG 0 GOTO MAIN ORG 4 GOTO LOOP1 ;\\\\\\\\\\\\\\\\\\\\\ MAIN BSF STATUS,RP0 MOVLW b'10111111' ;ビット6 1:立上りで割り込み 0:立下りで割り込み MOVWF OPTION_REG MOVLW b'00001100' MOVWF TRISIO MOVLW b'00000000' MOVWF ANSEL BCF STATUS,RP0 MOVLW b'00000111' MOVWF CMCON BSF INTCON,INTE BSF INTCON,GIE CLRF GPIO BSF FSR,0 ;\\\\\\\\\\\\\\\\\\\\\ LOOP GOTO LOOP ;\\\\\\\\\\\\\\\\\\\\\ LOOP1 MOVLW D'30' ;逆転時のウエイト(30~255) MOVWF TIME1 DECFSZ TIME1,F GOTO $-1 BTFSS GPIO,3 GOTO CW2 ;CW1(1相励磁) CW2(2相励磁) CW12(1-2相励磁) GOTO CCW2 ;CCW1(1相励磁) CCW2(2相励磁) CCW12(1-2相励磁) ;\\\\\\\\\\\\\\\\\\\\\ 1相励磁ルーチン CW1 BTFSC FSR,0 GOTO R1 BTFSC FSR,1 GOTO R2 BTFSC FSR,2 GOTO R3 BTFSC FSR,3 GOTO R0 GOTO MAIN CCW1 BTFSC FSR,0 GOTO R3 BTFSC FSR,1 GOTO R0 BTFSC FSR,2 GOTO R1 BTFSC FSR,3 GOTO R2 GOTO MAIN ;\\\\\\\\\\\\\\\\\\\\\ R0 MOVLW b'00000001' MOVWF GPIO CLRF FSR BSF FSR,0 BSF INTCON,INTE BCF INTCON,INTF RETFIE R1 MOVLW b'00000010' MOVWF GPIO CLRF FSR BSF FSR,1 BSF INTCON,INTE BCF INTCON,INTF RETFIE R2 MOVLW b'00010000' MOVWF GPIO CLRF FSR BSF FSR,2 BSF INTCON,INTE BCF INTCON,INTF RETFIE R3 MOVLW b'00100000' MOVWF GPIO CLRF FSR BSF FSR,3 BSF INTCON,INTE BCF INTCON,INTF RETFIE ;\\\\\\\\\\\\\\\\\\\\\ 2相励磁ルーチン CW2 BTFSC FSR,0 GOTO R1A BTFSC FSR,1 GOTO R2A BTFSC FSR,2 GOTO R3A BTFSC FSR,3 GOTO R0A GOTO MAIN CCW2 BTFSC FSR,0 GOTO R3A BTFSC FSR,1 GOTO R0A BTFSC FSR,2 GOTO R1A BTFSC FSR,3 GOTO R2A GOTO MAIN ;\\\\\\\\\\\\\\\\\\\\\ R0A MOVLW b'00000011' MOVWF GPIO CLRF FSR BSF FSR,0 BSF INTCON,INTE BCF INTCON,INTF RETFIE R1A MOVLW b'00010010' MOVWF GPIO CLRF FSR BSF FSR,1 BSF INTCON,INTE BCF INTCON,INTF RETFIE R2A MOVLW b'00110000' MOVWF GPIO CLRF FSR BSF FSR,2 BSF INTCON,INTE BCF INTCON,INTF RETFIE R3A MOVLW b'00100001' MOVWF GPIO CLRF FSR BSF FSR,3 BSF INTCON,INTE BCF INTCON,INTF RETFIE ;\\\\\\\\\\\\\\\\\\\\\ 1-2相励磁ルーチン CW12 BTFSC FSR,0 GOTO R1B BTFSC FSR,1 GOTO R2B BTFSC FSR,2 GOTO R3B BTFSC FSR,3 GOTO R4B BTFSC FSR,4 GOTO R5B BTFSC FSR,5 GOTO R6B BTFSC FSR,6 GOTO R7B BTFSC FSR,7 GOTO R0B GOTO MAIN CCW12 BTFSC FSR,0 GOTO R7B BTFSC FSR,1 GOTO R0B BTFSC FSR,2 GOTO R1B BTFSC FSR,3 GOTO R2B BTFSC FSR,4 GOTO R3B BTFSC FSR,5 GOTO R4B BTFSC FSR,6 GOTO R5B BTFSC FSR,7 GOTO R6B GOTO MAIN ;\\\\\\\\\\\\\\\\\\\\\ R0B MOVLW b'00000011' MOVWF GPIO CLRF FSR BSF FSR,0 BSF INTCON,INTE BCF INTCON,INTF RETFIE R1B MOVLW b'00000010' MOVWF GPIO CLRF FSR BSF FSR,1 BSF INTCON,INTE BCF INTCON,INTF RETFIE R2B MOVLW b'00010010' MOVWF GPIO CLRF FSR BSF FSR,2 BSF INTCON,INTE BCF INTCON,INTF RETFIE R3B MOVLW b'00010000' MOVWF GPIO CLRF FSR BSF FSR,3 BSF INTCON,INTE BCF INTCON,INTF RETFIE R4B MOVLW b'00110000' MOVWF GPIO CLRF FSR BSF FSR,4 BSF INTCON,INTE BCF INTCON,INTF RETFIE R5B MOVLW b'00100000' MOVWF GPIO CLRF FSR BSF FSR,5 BSF INTCON,INTE BCF INTCON,INTF RETFIE R6B MOVLW b'00100001' MOVWF GPIO CLRF FSR BSF FSR,6 BSF INTCON,INTE BCF INTCON,INTF RETFIE R7B MOVLW b'00000001' MOVWF GPIO CLRF FSR BSF FSR,7 BSF INTCON,INTE BCF INTCON,INTF RETFIE ;\\\\\\\\\\\\\\\\\\\\\ END